from .getsnmp import snmpget
from .walksnmp import snmpwalk
from .setsnmp import snmpset
from pysnmp.hlapi.v3arch.asyncio import Integer,Unsigned32,OctetString,Integer32
wr_type = "wrpc"
class wrpcVersionGroup():
    def walk_wrpcVersionGroup(self,ip):
        return snmpwalk(ip,wr_type,"wrpcVersionGroup")
    def get_wrpcVersionHwType(self,ip):
        return snmpget(ip,wr_type,"wrpcVersionHwType")
    
    def get_wrpcVersionSwVersion(self,ip):
        return snmpget(ip,wr_type,"wrpcVersionSwVersion")
    
    def get_wrpcVersionSwBuildBy(self,ip):
        return snmpget(ip,wr_type,"wrpcVersionSwBuildBy")
    
    def get_wrpcVersionSwBuildDate(self,ip):
        return snmpget(ip,wr_type,"wrpcVersionSwBuildDate")
    
class wrpcTimeGroup():
    def walk_wrpcTimeGroup(self,ip):
        return snmpwalk(ip,wr_type,"wrpcTimeGroup")
    def get_wrpcTimeTAI(self,ip):
        return snmpget(ip,wr_type,"wrpcTimeTAI")
    
    def get_wrpcTimeTAIString(self,ip):
        return snmpget(ip,wr_type,"wrpcTimeTAIString")
    
    def get_wrpcTimeSystemUptime(self,ip):
        return snmpget(ip,wr_type,"wrpcTimeSystemUptime")
    
class wrpcTemperatureTable():
    def walk_wrpcTemperatureTable(self,ip):
        return snmpwalk(ip,wr_type,"wrpcTemperatureTable")
    def get_wrpcTemperatureIndex(self,ip):
        return snmpget(ip,wr_type,"wrpcTemperatureIndex")
    
    def get_wrpcTemperatureName(self,ip):
        return snmpget(ip,wr_type,"wrpcTemperatureName")
    
    def get_wrpcTemperatureValue(self,ip):
        return snmpget(ip,wr_type,"wrpcTemperatureValue")


class wrpcSpllStatusGroup():
    def walk_wrpcSpllStatusGroup(self,ip):
        return snmpwalk(ip,wr_type,"wrpcSpllStatusGroup")
    def get_wrpcSpllMode(self,ip):
        return snmpget(ip,wr_type,"wrpcSpllMode")
    
    def get_wrpcSpllIrqCnt(self,ip):
        return snmpget(ip,wr_type,"wrpcSpllIrqCnt")
    
    def get_wrpcSpllSeqState(self,ip):
        return snmpget(ip,wr_type,"wrpcSpllSeqState")
    
    def get_wrpcSpllAlignState(self,ip):
        return snmpget(ip,wr_type,"wrpcSpllAlignState")
    
    def get_wrpcSpllHlock(self,ip):
        return snmpget(ip,wr_type,"wrpcSpllHlock")
    
    def get_wrpcSpllMlock(self,ip):
        return snmpget(ip,wr_type,"wrpcSpllMlock")
    
    def get_wrpcSpllHY(self,ip):
        return snmpget(ip,wr_type,"wrpcSpllHY")
    def get_wrpcSpllMY(self,ip):
        return snmpget(ip,wr_type,"wrpcSpllMY")
    
    def get_wrpcSpllDelCnt(self,ip):
        return snmpget(ip,wr_type,"wrpcSpllDelCnt")
    
class wrpcPtpGroup():
    def walk_wrpcPtpGroup(self,ip):
        return snmpwalk(ip,wr_type,"wrpcPtpGroup")
    def get_wrpcPtpServoStateN(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpServoStateN")
    
    def get_wrpcPtpClockOffsetPsHR(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpClockOffsetPsHR")

    def get_wrpcPtpSkew(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpSkew")
    def get_wrpcPtpRTT(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpRTT")
    def get_wrpcPtpServoUpdates(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpServoUpdates")
    def get_wrpcPtpServoUpdateTime(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpServoUpdateTime")
    def get_wrpcPtpDeltaTxM(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpDeltaTxM")
    def get_wrpcPtpDeltaRxM(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpDeltaRxM")
    def get_wrpcPtpDeltaTxS(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpDeltaTxS")
    def get_wrpcPtpDeltaRxS(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpDeltaRxS")
    def get_wrpcPtpServoStateErrCnt(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpServoStateErrCnt")
    def get_wrpcPtpClockOffsetErrCnt(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpClockOffsetErrCnt")
    def get_wrpcPtpRTTErrCnt(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpRTTErrCnt")
    def get_wrpcPtpAsymmetry(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpAsymmetry")
    def get_wrpcPtpTx(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpTx")
    def get_wrpcPtpRx(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpRx")
    def get_wrpcPtpAlpha(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpAlpha")
    
class wrpcPtpConfigGroup():
    def walk_wrpcPtpConfigGroup(self,ip):
        return snmpwalk(ip,wr_type,"wrpcPtpConfigGroup")
    def get_wrpcPtpConfigRestart(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpConfigRestart")
    
    def set_wrpcPtpConfigRestart(self,ip:str,value):
        return snmpset(ip,wr_type,"wrpcPtpConfigRestart",Integer(value))
    
    def get_wrpcPtpConfigApply(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpConfigApply")
    
    def set_wrpcPtpConfigApply(self,ip:str,value):
        return snmpset(ip,wr_type,"wrpcPtpConfigApply",Integer(value))
    
    def get_wrpcPtpConfigSfpPn(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpConfigSfpPn")
    
    def set_wrpcPtpConfigSfpPn(self,ip:str,value):
        return snmpset(ip,wr_type,"wrpcPtpConfigSfpPn",OctetString(value))
    
    def get_wrpcPtpConfigDeltaTx(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpConfigDeltaTx")
    
    def set_wrpcPtpConfigDeltaTx(self,ip:str,value):
        return snmpset(ip,wr_type,"wrpcPtpConfigDeltaTx",Integer32(value))
    
    def get_wrpcPtpConfigDeltaRx(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpConfigDeltaRx")
    
    def set_wrpcPtpConfigDeltaRx(self,ip:str,value):
        return snmpset(ip,wr_type,"wrpcPtpConfigDeltaRx",Integer32(value))
    
    def get_wrpcPtpConfigAlphaH(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpConfigAlphaH")
    
    def set_wrpcPtpConfigAlphaH(self,ip:str,value):
        return snmpset(ip,wr_type,"wrpcPtpConfigAlphaH",Integer32(value))
    
    def get_wrpcPtpConfigAlphaL(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpConfigAlphaL")
    
    def set_wrpcPtpConfigAlphaL(self,ip:str,value):
        return snmpset(ip,wr_type,"wrpcPtpConfigAlphaL",Integer32(value))
    
    def get_wrpcPtpConfigAlpha(self,ip):
        return snmpget(ip,wr_type,"wrpcPtpConfigAlpha")
    
class wrpcPortGroup():
    def walk_wrpcPortGroup(self,ip):
        return snmpwalk(ip,wr_type,"wrpcPortGroup")
    def get_wrpcPortLinkStatus(self,ip):
        return snmpget(ip,wr_type,"wrpcPortLinkStatus")
    
    def get_wrpcPortSfpPn(self,ip):
        return snmpget(ip,wr_type,"wrpcPortSfpPn")
    
    def get_wrpcPortSfpInDB(self,ip):
        return snmpget(ip,wr_type,"wrpcPortSfpInDB")
    def get_wrpcPortInternalTx(self,ip):
        return snmpget(ip,wr_type,"wrpcPortInternalTx")
    def get_wrpcPortInternalRx(self,ip):
        return snmpget(ip,wr_type,"wrpcPortInternalRx")
    
class wrpcSfpTable():
    def walk_wrpcSfpTable(self,ip):
        return snmpwalk(ip,wr_type,"wrpcSfpTable")
    def get_wrpcSfpIndex(self,ip):
        return snmpget(ip,wr_type,"wrpcSfpIndex")
    def get_wrpcSfpPn(self,ip):
        return snmpget(ip,wr_type,"wrpcSfpPn")
    def get_wrpcSfpDeltaTx(self,ip):
        return snmpget(ip,wr_type,"wrpcSfpDeltaTx")
    def get_wrpcSfpDeltaRx(self,ip):
        return snmpget(ip,wr_type,"wrpcSfpDeltaRx")
    def get_wrpcSfpAlpha(self,ip):
        return snmpget(ip,wr_type,"wrpcSfpAlpha")
